package com.wyh.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 用户管理对象 admin_user
 *
 * @author WangYuHang
 * @date 2024-03-03
 */

@Data
@ApiModel(value = "用户管理对象")
@Builder
@Accessors(chain = true)
@TableName("admin_user")
public class AdminUser implements Serializable {

    /**
     * 唯一标识主键，自增
     */
    @TableId(value = "id", type = IdType.AUTO)
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    @ApiModelProperty(value = "id")
    private Integer id;
    /**
     * 用户唯一标识
     */
    @Excel(name = "用户唯一标识")
    @ApiModelProperty(value = "用户唯一标识")
    private String userId;
    /**
     * 加密后的密码
     */
    @Excel(name = "加密后的密码")
    @ApiModelProperty(value = "加密后的密码")
    private String password;
    /**
     * 手机号
     */
    @Excel(name = "手机号")
    @ApiModelProperty(value = "手机号")
    private String phone;
    /**
     * 昵称
     */
    @Excel(name = "昵称、用户名")
    @ApiModelProperty(value = "昵称")
    private String nickname;
    /**
     * 性别，1表示男性，2表示女性，不可修改
     */
    @Excel(name = "性别，1表示男性，2表示女性，不可修改")
    @ApiModelProperty(value = "性别，1表示男性，2表示女性，不可修改")
    private String sex;
    /**
     * 个性介绍
     */
    @Excel(name = "个性介绍")
    @ApiModelProperty(value = "个性介绍")
    private String selfIntroduction;
    /**
     * 地址
     */
    @Excel(name = "地址")
    @ApiModelProperty(value = "地址")
    private String address;
    /**
     * 生日，不可修改
     */
    @Excel(name = "生日，不可修改")
    @ApiModelProperty(value = "生日，不可修改")
    private LocalDateTime birthday;
    /**
     * 公告 （可以自定义）
     */
    @Excel(name = "公告 ")
    @ApiModelProperty(value = "公告 （可以自定义）")
    private String announcement;
    /**
     * 金币余额
     */
    @Excel(name = "金币余额")
    @ApiModelProperty(value = "金币余额")
    private Integer goldAmount;
    /**
     * 个人钻石余额 （个人充值的）
     */
    @Excel(name = "个人钻石余额 " )
    @ApiModelProperty(value = "个人钻石余额 （个人充值的）")
    private Integer diamondAmount;
    /**
     * 获取的钻石余额 （直播获取，回放，礼物）
     */
    @Excel(name = "获取的钻石余额 " )
    @ApiModelProperty(value = "获取的钻石余额 （直播获取，回放，礼物）")
    private Integer getDiamondAmount;

    /**
     * 获取的钻石余额 （直播获取，回放，礼物）
     */
    @Excel(name = "经济人id " )
    @ApiModelProperty(value = "经济人id")
    private String economicId;

    /**
     * 经济人营收钻石余额
     */
    @Excel(name = "经济人营收钻石余额")
    @ApiModelProperty(value = "经济人营收钻石余额")
    private Integer economicDiamondAmount;
    /**
     * 用户等级
     */
    @Excel(name = "用户等级")
    @ApiModelProperty(value = "用户等级")
    private Integer userLevel;
    /**
     * 主播等级
     */
    @Excel(name = "主播等级")
    @ApiModelProperty(value = "主播等级")
    private Integer masterLevel;
    /**
     * 用户经验 （经验到一定阶段提升用户等级）
     */
    @Excel(name = "用户经验 ")
    @ApiModelProperty(value = "用户经验 （经验到一定阶段提升用户等级）")
    private Integer userExp;
    /**
     * 主播经验 （经验到一定阶段提升主播等级）
     */
    @Excel(name = "主播经验 " )
    @ApiModelProperty(value = "主播经验 （经验到一定阶段提升主播等级）")
    private Integer masterExp;
    /**
     * 头像/照片链接
     */
    @Excel(name = "头像/照片链接")
    @ApiModelProperty(value = "头像/照片链接")
    private String headImage;
    /**
     * 注册时间
     */
    @Excel(name = "注册时间")
    @ApiModelProperty(value = "注册时间")
    private LocalDateTime registerTime;
    /**
     * 上次登录时间
     */
    @Excel(name = "上次登录时间")
    @ApiModelProperty(value = "上次登录时间")
    private LocalDateTime loginTime;
    /**
     * 邀请码
     */
    @Excel(name = "邀请码")
    @ApiModelProperty(value = "邀请码")
    private String inviteCode;
    /**
     * 直播间id
     */
    @Excel(name = "直播间id")
    @ApiModelProperty(value = "直播间id")
    private String liveRoomId;
    /**
     * 用户状态，0表示正常，1表示禁用，2表示黑名单用户等
     */
    @Excel(name = "用户状态，0表示正常，1表示禁用，2表示黑名单用户等")
    @ApiModelProperty(value = "用户状态，0表示正常，1表示禁用，2表示黑名单用户等")
    private Integer status;
    /**
     * 是否是超级管理员，0表示否，1表示是
     */
    @Excel(name = "是否是超级管理员，0表示否，1表示是")
    @ApiModelProperty(value = "是否是超级管理员，0表示否，1表示是")
    private Integer isBoss;
    /**
     * 是否注销，0表示否，1表示是
     */
    @Excel(name = "是否注销，0表示否，1表示是")
    @ApiModelProperty(value = "是否注销，0表示否，1表示是")
    private Integer isLogout;
    /**
     * 创建人ID
     */
    @Excel(name = "创建人ID")
    @ApiModelProperty(value = "创建人ID")
    @TableField(fill = FieldFill.INSERT)//插入时填充*/
    private String createUserId;
    /**
     * 更新人ID
     */
    @Excel(name = "更新人ID")
    @ApiModelProperty(value = "更新人ID")
    @TableField(fill = FieldFill.INSERT_UPDATE)//插入和更新时填充*
    private String updateUserId;
    /**
     * 创建时间
     */
    @Excel(name = "创建时间")
    @ApiModelProperty(value = "创建时间")
    @TableField(fill = FieldFill.INSERT) //插入时填充
    private LocalDateTime createTime;
    /**
     * 更新时间
     */
    @Excel(name = "更新时间")
    @ApiModelProperty(value = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)//插入和更新时填充
    private LocalDateTime updateTime;
}
